PROG = test
CC = g++ -g

# 静态连接方式
all: libmylib.so test_dy libmylib2.so test_2so
	$(CC) -I./ main.cpp -L./ -lmylib  -o $(PROG)

# 动态连接方式
test_dy:
	$(CC) -I./ main_dy.cpp -ldl -o $@

# 2个静态库内各自有同名函数
test_2so:
	$(CC) -I./ main_2so.cpp -L./ -lmylib2 -lmylib -o $@

libmylib.so: mylib.o
	$(CC) -shared mylib.o -o $@
mylib.o:
	$(CC) -O2  -fPIC -I.  -c mylib.cpp

libmylib2.so: mylib2.o
	$(CC) -shared mylib2.o -o $@
mylib2.o:
	$(CC) -O2  -fPIC -I.  -c mylib2.cpp

clean:
	rm  $(PROG) mylib.o libmylib.so test_dy  mylib2.o libmylib2.so test_2so
